Hands-free communication devices such as Bluetooth headsets have increased in popularity in recent years. Many of these devices have audio capabilities and as new applications have been devised, various digital signal processing (DSP) algorithms have been designed to improve the audio performance of these devices. One of the features that are desirable for headset applications in particular is acoustic echo cancellation (AEC). This involves reducing echo effects that arise, for example, from crosstalk between a device's speaker and its microphone. Various AEC algorithms are already well described in the literature. However, many modern headsets are small and are powered from very limited energy sources such as miniature batteries. For these applications it would be desirable to reduce the power needed to perform AEC.
The need for AEC varies significantly across different models of headset and different operation conditions. First of all, acoustic coupling between the loudspeaker and the microphone differs significantly across different hardware models, due to the fact that each model: (1) has different distance between loudspeaker and microphone; (2) employs housing and assembly design that achieves different levels of acoustic and mechanical insulation; and (3) uses microphone and loudspeaker components that have different frequency responses and directivities. This diversity is further compounded by the variation of the signal level played out at the loudspeaker of any individual device due to the variation in received signal level and the availability of multiple volume settings. As a result, the level of echo presented at the microphone varies widely. In low volume and/or low coupling scenarios, the echo level can be so low that no AEC is required. In moderate scenarios, the echo problem can sometimes be mitigated with a linear AEC algorithm. In extreme scenarios, nonlinear compensation algorithms are needed, and could be implemented alongside linear AEC algorithms to deal nonlinear echo problems properly.
Simple AEC algorithms suffer from the problem that they provide relatively poor cancellation performance in non-linear situations. More complex AEC algorithms suffer from the problem that they involve relatively high power consumption. There is therefore a need for an improved mechanism for performing echo cancellation.